{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.random.seed(666)\n",
    "x = np.random.uniform(-3.0, 3.0, size=100)\n",
    "X = x.reshape(-1, 1)\n",
    "y = 0.5 * x**2 + x + 2 + np.random.uniform(0,1,size=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x27c4b6ec2b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x, y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.metrics import mean_squared_error\n",
    "\n",
    "train_score = []\n",
    "test_score = []\n",
    "for i in range(1, 76):\n",
    "    lin_reg = LinearRegression()\n",
    "    lin_reg.fit(X_train[:i], y_train[:i])\n",
    "    \n",
    "    y_train_predict = lin_reg.predict(X_train[:i])\n",
    "    train_score.append(mean_squared_error(y_train[:i], y_train_predict))\n",
    "    \n",
    "    y_test_predict = lin_reg.predict(X_test)\n",
    "    test_score.append(mean_squared_error(y_test, y_test_predict))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x27c4dc5c4e0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot([i for i in range(1, 76)], np.sqrt(train_score), label='train')\n",
    "plt.plot([i for i in range(1, 76)], np.sqrt(test_score), label='test')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 绘制学习曲线的封装函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 将上述过程封装成一个绘制学习曲线的函数\n",
    "def plot_learning_curve(algo, X_train, X_test, y_train, y_test):\n",
    "    train_score = []\n",
    "    test_score = []\n",
    "    length = len(X_train)\n",
    "    for i in range(1, length+1):\n",
    "        algo.fit(X_train[:i], y_train[:i])\n",
    "\n",
    "        y_train_predict = algo.predict(X_train[:i])\n",
    "        train_score.append(mean_squared_error(y_train[:i], y_train_predict))\n",
    "\n",
    "        y_test_predict = algo.predict(X_test)\n",
    "        test_score.append(mean_squared_error(y_test, y_test_predict))\n",
    "    \n",
    "    plt.plot([i for i in range(1, length+1)], np.sqrt(train_score), label='train')\n",
    "    plt.plot([i for i in range(1, length+1)], np.sqrt(test_score), label='test')\n",
    "    plt.legend()\n",
    "    plt.axis([0, length+1, 0, 4])\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3Xl8XOV56PHfM7v23ZYsecXGLN4AY0wglJAEbEggKSklCWmSJnXaJinpLbShvSUl7b1J2t5sTRtKAinNQhYgDSEmrCZswSATL/KG5QVrJNnarF0jzfLeP94jW5ZmNCN7JM1Iz/fzOZ+ZOefMmWdGR8888573vEeMMSillJpZXNMdgFJKqfTT5K6UUjOQJnellJqBNLkrpdQMpMldKaVmIE3uSik1A6Wc3EXELSK/E5HH4yzzi8hPRKReRLaKyKJ0BqmUUmpiJlK53w7sTbDsE8AJY8xS4GvAV842MKWUUmcupeQuIjXADcB3E6xyE/Cgc/9h4J0iImcfnlJKqTPhSXG9rwN/DRQkWF4NNAAYYyIi0gWUAW0jVxKRTcAmgLy8vEvOO++8sVs6XgeBIiiaP3ZZbwt0N0LVahA9XKCUmn22bdvWZoypSLZe0uQuIu8BWowx20Tk6kSrxZk3ZlwDY8x9wH0Aa9euNbW1tWOf9aX5sObDsPHLY5dtvQ+euBPufBryypKFrpRSM46IvJXKeqmUv1cAN4rIEeDHwDUi8oNR6wSB+c4Le4AioCPlaEcKD4A3EH+Zx29vI6Ez2rRSSs0WSZO7MeYuY0yNMWYRcCvwnDHmtlGrPQZ81Ln/AWediY9IFotCLAyenPjLPU7S1+SulFLjSrXNfQwR+SJQa4x5DLgf+L6I1GMr9lvPaKPhAXvrTZTchyv3wTPavFJKzRYTSu7GmOeB5537d4+YHwL+4KyjSZrchyv3gbN+KaVUdgqHwwSDQUKhmf0LPhAIUFNTg9frPaPnn3HlPimGk7YnQZv7cFu8Vu5KzVrBYJCCggIWLVrETO1xbYyhvb2dYDDI4sWLz2gbmdWfMOx8Eyet3Gf2N7ZSKrFQKERZWdmMTewAIkJZWdlZ/TrJrOSerHLXNnelFMzoxD7sbN9jZiV3rdyVUiotMiy599tb7S2jlMpQnZ2d/Md//MeEn3f99dfT2dk5CRHFl1nJfbgiT9gs48wPa28ZpdT0SJTco9HouM/bvHkzxcXFkxXWGJnVWyblrpBauSulpsfnP/95Dh48yJo1a/B6veTn51NVVcX27dvZs2cP73vf+2hoaCAUCnH77bezadMmABYtWkRtbS29vb1s3LiRK6+8kldeeYXq6mp+8YtfkJOTIO+docxK7qlW7trmrpQC7vnlbvY0dad1mxfMK+QL770w4fIvf/nL1NXVsX37dp5//nluuOEG6urqTnZZfOCBBygtLWVgYIBLL72Um2++mbKy08fCOnDgAA899BDf+c53uOWWW3jkkUe47bbRJ/6fncxK7icr99z4y7XNXSmVYdatW3daX/RvfvOb/PznPwegoaGBAwcOjEnuixcvZs2aNQBccsklHDlyJO1xZWhyT1C5u9zg8mrlrpQCGLfCnip5eXkn7z///PM888wz/Pa3vyU3N5err746bl91v99/8r7b7WZgIP3HETPsgOpwP/dx2p48Aa3clVLTpqCggJ6enrjLurq6KCkpITc3l3379vHqq69OcXSnZFjlHrIX4XCPM5aCx69jyyilpk1ZWRlXXHEFK1asICcnh7lz555ctmHDBu69915WrVrF8uXLWb9+/bTFmVnJPRKyVft4Z2Z5c7RyV0pNqx/96Edx5/v9fp544om4y4bb1cvLy6mrqzs5/4477kh7fJBpzTLhgcTdIId5/NrmrpRSSWRhctc2d6WUSiazkntkIHEf92FauSulVFKZldzDocTdIIdp5a6UUkllVnKPDIzfDRJs5a5jyyil1LiSJncRCYjIayKyQ0R2i8g9cdb5mIi0ish2Z/rkGUUTDqXQ5q69ZZRSKplUKvdB4BpjzGpgDbBBROJ13vyJMWaNM333jKIJ92tvGaVURjvTIX8Bvv71r9Pf35/miOJLmtyN1es89DqTmZRoIqEUDqhqm7tSavpkS3JP6SQmEXED24ClwL8bY7bGWe1mEbkKeBP4S2NMw4SjSalZRit3pdT0GTnk77vf/W7mzJnDT3/6UwYHB3n/+9/PPffcQ19fH7fccgvBYJBoNMrf//3fc/z4cZqamnjHO95BeXk5W7ZsmdQ4U0ruxpgosEZEioGfi8gKY0zdiFV+CTxkjBkUkT8FHgSuGb0dEdkEbAJYsGDB2BdKqSukVu5KKccTn4dju9K7zcqVsPHLCRePHPL3qaee4uGHH+a1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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x27c4def72e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_learning_curve(LinearRegression(), X_train, X_test, y_train, y_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 多项式回归的学习曲线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "\n",
    "def PolynomialRegression(degree):\n",
    "    return Pipeline([\n",
    "        ('poly', PolynomialFeatures(degree=degree)),\n",
    "        ('std_scaler', StandardScaler()),\n",
    "        ('lin_reg', LinearRegression())\n",
    "    ])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3X2UXHWd5/H391ZVV/VjAkkDIQESBcEBIUBEOLguokiCCnpEF2ccH8Y5cWcdxdlhZsjMiIvH3aM756jL+MAJQ1bHB5QBHxgHhgclI7MK2MGAgYCJipM2QDohj/1YD9/9497qrlTXrarurqRvN5/XOfdU1b2/vvXt6qpvfft3f/d3zd0REZH5JZjtAEREpPWU3EVE5iEldxGReUjJXURkHlJyFxGZh5TcRUTmoaaTu5mlzOznZvaDGtuyZvZtM9tuZo+Y2fJWBikiIlMzlcr9WmBrzLYPAnvd/VTgc8BnZhqYiIhMX1PJ3cyWAW8G/iGmyVXAV6P7dwBvMDObeXgiIjId6SbbfR74S6A7ZvtSYAeAuxfMbD+wCNhd2cjM1gJrATo7O88/44wz6j9rYRR2PQXHLIf2YybW73oK2jph4SlNhi8iMj9s2rRpt7v3NmrXMLmb2VuAXe6+ycwuiWtWY92keQ3cfT2wHmDVqlXe19dX/8kHnoEvXgDv+Ay86uqJ9TedCyeeB1ff2ih8EZF5xcx+20y7ZrplLgauNLNngW8Bl5rZ16va9AMnRU+cBhYALzYdbZxSMYoydfh6S4GXZrx7EZH5qmFyd/d17r7M3ZcD1wA/cvf3VDW7C3hfdP/qqM3MZyTzKLlbdXIPJraJiMgkzfa5T2JmnwT63P0u4Fbga2a2nbBiv6Yl0cVV7oEqdxGReqaU3N19I7Axun9DxfoR4J2tDCzccZ3KvaTkLvJSlM/n6e/vZ2RkZLZDOaJyuRzLli0jk8lM6+enXbkfFeUEPqnPXd0yIi9V/f39dHd3s3z5cubriGt3Z8+ePfT397NixYpp7SPZ0w+MV+5VYapbRuQla2RkhEWLFs3bxA5gZixatGhG/50kO7nHjpYJJraJyEvOfE7sZTP9HZOd3GP73FW5i4jUk+zkXq9yV5+7iMyCffv28aUvfWnKP3fFFVewb9++IxBRbclO7nGVe5DSaBkRmRVxyb1YrF9w3n333SxcuPBIhTXJ3B0toz53EZkF119/Pb/61a9YuXIlmUyGrq4ulixZwubNm3nqqad429vexo4dOxgZGeHaa69l7dq1ACxfvpy+vj4OHTrEmjVreO1rX8tPfvITli5dyve//33a29tbGmeyk3vcaBkLwMeOfjwikig3/vOTPLXzQEv3+Xsn9vCJt54Zu/3Tn/40W7ZsYfPmzWzcuJE3v/nNbNmyZXzI4oYNGzj22GMZHh7m1a9+Ne94xztYtGjRYfvYtm0bt912G7fccgvvete7uPPOO3nPe6pP/J+ZZCd3naEqIgl3wQUXHDYW/aabbuK73/0uADt27GDbtm2TkvuKFStYuXIlAOeffz7PPvtsy+NKdnKve4aqumVEXurqVdhHS2dn5/j9jRs38sADD/DTn/6Ujo4OLrnkkppj1bPZ7Pj9VCrF8PBwy+NK9gHVurNCKrmLyNHX3d3NwYMHa27bv38/xxxzDB0dHTz99NM8/PDDRzm6CQmv3KOul1qjZdQtIyKzYNGiRVx88cWcddZZtLe3c/zxx49vW716NTfffDNnn302p59+OhdeeOGsxZns5F6qc0BVQyFFZJZ885vfrLk+m81yzz331NxW7ldfvHgxW7ZsGV9/3XXXtTw+SHq3TLk6D2qNllFyFxGJk/Dkrot1iIhMR7KTe72hkBotIyISK9nJXROHiYhMS7KTuyYOExGZlobJ3cxyZvaomT1uZk+a2Y012rzfzAbMbHO0/HFLoqs7FHLm198WEZmvmqncR4FL3f0cYCWw2sxqDd78truvjJZ/aEl045V79WgZU5+7iMyK6U75C/D5z3+eoaGhFkdUW8Pk7qFD0cNMtBydsrlun7uSu4gcfXMluTd1EpOZpYBNwKnAF939kRrN3mFmrwN+CfyZu++YcXSaOExEEqZyyt/LLruM4447jttvv53R0VHe/va3c+ONNzI4OMi73vUu+vv7KRaLfPzjH+eFF15g586dvP71r2fx4sU8+OCDRzTOppK7uxeBlWa2EPiumZ3l7lsqmvwzcJu7j5rZfwW+ClxavR8zWwusBTj55JObeGJNHCYiddxzPTz/i9bu84RXwZpPx26unPL3vvvu44477uDRRx/F3bnyyiv58Y9/zMDAACeeeCL/8i//AoRzzixYsIDPfvazPPjggyxevLi1MdcwpdEy7r4P2Aisrlq/x91Ho4e3AOfH/Px6d1/l7qt6e3sbP2HsxTpUuYvI7Lvvvvu47777OPfccznvvPN4+umn2bZtG6961at44IEH+Ku/+iseeughFixYcNRja1i5m1kvkHf3fWbWDrwR+ExVmyXu/lz08Epga0uiq3uGqpK7yEtenQr7aHB31q1bx4c+9KFJ2zZt2sTdd9/NunXreNOb3sQNN9xwVGNrpnJfAjxoZk8APwPud/cfmNknzezKqM1Ho2GSjwMfBd7fkujiRsvoDFURmSWVU/5efvnlbNiwgUOHwjEnv/vd79i1axc7d+6ko6OD97znPVx33XU89thjk372SGtYubv7E8C5NdbfUHF/HbCutaERVu7VVTuEQyFVuYvILKic8nfNmjX8/u//PhdddBEAXV1dfP3rX2f79u38xV/8BUEQkMlk+PKXvwzA2rVrWbNmDUuWLEnGAdVZUypO7m8HDYUUkVlVPeXvtddee9jjl7/85Vx++eWTfu4jH/kIH/nIR45obGXJnn4grnLXUEgRkbqSndxLpZjKXUMhRUTqSXZy9+LkqzBBVM275pcReYnyl8Bnf6a/Y7KTeykuuUfr1DUj8pKTy+XYs2fPvE7w7s6ePXvI5XLT3keyD6h6zAHV8tDIuAOuIjJvLVu2jP7+fgYGBmY7lCMql8uxbNmyaf98wpN7KWYoZGpiu4i8pGQyGVasWDHbYSRe8rtl4g6ogoZDiojESHZyj6vcywlfI2ZERGpKdnIvFSdPPQA6oCoi0kCyk3vs9APqcxcRqSfZyT2uzz1QchcRqSfZyb3exGGgPncRkRjJTu71Jg4DVe4iIjGSndxjx7lrKKSISD3JTu5xo2U0FFJEpK5kJ3eNlhERmZZkJ/eGZ6gquYuI1JLs5F7vYh2g5C4iEqNhcjeznJk9amaPRxfBvrFGm6yZfdvMtpvZI2a2vCXRxV6sQ0MhRUTqaaZyHwUudfdzgJXAajO7sKrNB4G97n4q8DngMy2Jru7FOtBoGRGRGA2Tu4cORQ8z0VI9S/5VwFej+3cAbzArl9czEHexDnXLiIjU1VSfu5mlzGwzsAu4390fqWqyFNgB4O4FYD+wqMZ+1ppZn5n1NTXRftzFOqziYh0iIjJJU8nd3YvuvhJYBlxgZmdVNalVpU+6Bpa7r3f3Ve6+qre3t/ETlzQUUkRkOqY0Wsbd9wEbgdVVm/qBkwDMLA0sAF6ccXSNKncldxGRmpoZLdNrZguj++3AG4Gnq5rdBbwvun818CNvxdVrS3EX61C3jIhIPc1cQ3UJ8FUzSxF+Gdzu7j8ws08Cfe5+F3Ar8DUz205YsV/Tkui8pIt1iIhMQ8Pk7u5PAOfWWH9Dxf0R4J2tDY0mph9Q5S4iUkuyz1DVxTpERKYlGcn9xd/AF18Dv7z38PWxlbv63EVE6klGcg/SMPA0HHz+8PWx0w+oW0ZEpJ5kJPdcT3g7euDw9Y0q9xYMyBERmY+SkdzbugGDkarkHnuxDnXLiIjUk4zkHgSQ7Z5C5a4DqiIi9SQjuQNke2Iqd11DVURkqhKU3KdQuesaqiIidSUnued6Jif32NEyOkNVRKSe5CT3Wt0yDS/WoeQuIlJLcpJ7zcpdZ6iKiExHcpL7lCp3XUNVRKSe5CT3uMpdE4eJiExZcpJ7thuKY1AYDR+7A64DqiIi05Cg5L4gvC13zZS7XDQUUkRkypKT3Kvnlyl3udS8WIcOqIqI1JOc5J6NkvvI/vC2XuWubhkRkbqSk9xjK3d1y4iITFUzF8g+ycweNLOtZvakmV1bo80lZrbfzDZHyw219lXXeOVeTu5RVV6zcrfD24iIyGGauUB2Afhzd3/MzLqBTWZ2v7s/VdXuIXd/y7QjGa/cD4a3pTqVu4ZCiojU1bByd/fn3P2x6P5BYCuwtOWRZKu7ZepU7jpDVUSkrin1uZvZcuBc4JEamy8ys8fN7B4zOzPm59eaWZ+Z9Q0MDBy+Mdsd3lYPhaw5WkYX6xARqafp5G5mXcCdwMfcvepUUh4DTnH3c4C/B75Xax/uvt7dV7n7qt7e3sM3pjKQ6Zh8QFVnqIqITFlTyd3MMoSJ/Rvu/p3q7e5+wN0PRffvBjJmtnjK0WR7Jg+FrHuGqq6hKiJSSzOjZQy4Fdjq7p+NaXNC1A4zuyDa754pR1M5v0y9yl1DIUVE6mpmtMzFwB8CvzCzzdG6vwZOBnD3m4GrgT8xswIwDFzjPo2yOtvT5GgZDYUUEamnYXJ3938HrEGbLwBfmHE02e7mxrmX16vPXUSkpuScoQqHd8vUGy0DYUWvbhkRkZqSldwrL9hRr88dwoOq6pYREakpWck9t2By5V7rSkwQdcsouYuI1JKs5J7tgfwQFAv1Jw4DVe4iInUkK7lXzgxZanBANQjU5y4iEiNZyb1yfpmGlbu6ZURE4iQsuVfML9Owzz3QUEgRkRjNnMR09FRfsAPiK3cNhRQRiZWwyr3igh31LrMHOqAqIlJHspJ7bkF4O3pQfe4iIjOQrOSeneJoGSV3EZGakpXcy33uI/snEne9ce7qcxcRqSlZyT2dhVTb4UMh656hquQuIlJLspI7TMwvU2/KX9ABVRGROpKX3MszQzaaOExDIUVEYiUvuZcv2NGwctdoGRGROMlL7rmoW6bhxTrULSMiEid5yT0bdcs0qtw1cZiISKxmLpB9kpk9aGZbzexJM7u2Rhszs5vMbLuZPWFm5007otyCqHJvZm4ZVe4iIrU0M7dMAfhzd3/MzLqBTWZ2v7s/VdFmDXBatLwG+HJ0O3XZ7uYqdw2FFBGJ1bByd/fn3P2x6P5BYCuwtKrZVcA/euhhYKGZLZlWROMHVPPh47jKPdABVRGROFPqczez5cC5wCNVm5YCOyoe9zP5CwAzW2tmfWbWNzAwUPtJcj2AT1xLtd4BVfW5i4jU1HRyN7Mu4E7gY+5+oHpzjR/xSSvc17v7Kndf1dvbW/uJxmeG3BdFqKGQIiJT1VRyN7MMYWL/hrt/p0aTfuCkisfLgJ3Tiqg8v8zw3ujJ45K7KbmLiMRoZrSMAbcCW939szHN7gLeG42auRDY7+7PTSuibFVyD+r0uatbRkSkpmZGy1wM/CHwCzPbHK37a+BkAHe/GbgbuALYDgwBH5h2RNXJXScxiYhMWcPk7u7/Tu0+9co2Dny4JRFVd8toKKSIyJQl8wxVgOHogKomDhMRmbLkJfdcVXKvO+XvpAE5IiJCEpN7piOs1scOho/r9rmrchcRqSV5yd1sonqH+NEyOqAqIhIreckdwvllIL5qB/W5i4jUkdDkviC8jetvB42WERGpI5nJvdwtU69yV7eMiEisZCb38nDIepV7kIKSkruISC3JTO6q3EVEZiSZyX28cq8TnoZCiojESmZyb6Zy12gZEZFYyUzu40MhG1Xu6pYREaklocm9iQOqGgopIhIrmck9F41z1wFVEZFpSWZyb+aAqoZCiojESmZyb3oopLplRERqSWZyb6rPXd0yIiJxEprcNXGYiMhMNHOB7A1mtsvMtsRsv8TM9pvZ5mi5YcZR5VS5i4jMRDMXyP4K8AXgH+u0ecjd39KSiADaugFr0OeuoZAiInEaVu7u/mPgxaMQy4QgCLtmGo2WAV1qT0Skhlb1uV9kZo+b2T1mdmZcIzNba2Z9ZtY3MDBQf4/ZnsajZUD97iIiNbQiuT8GnOLu5wB/D3wvrqG7r3f3Ve6+qre3t/5ecz2N+9xBXTMiIjXMOLm7+wF3PxTdvxvImNniGUfWbOWug6oiIpM0c0C1LjM7AXjB3d3MLiD8wtgz48j+03+v3+VSrurVLSMiMknD5G5mtwGXAIvNrB/4BJABcPebgauBPzGzAjAMXOPegqOcr7i8QWCq3EVE4jRM7u7+7gbbv0A4VPLoKnfZqM9dRGSSZJ6h2ozxbhlV7iIi1eZucle3jIhIrHmQ3NUtIyJSbR4kd1XuIiLV5m5y11BIEZFYcze5a7SMiEisOZzc1S0jIhJn7iZ3DYUUEYk1d5O7KncRkVjzILmrz11EpNrcTe4aLSMiEmvuJnd1y4iIxJrDyV1DIUVE4szh5K7KXUQkztxN7hoKKSISa+4md42WERGJNQ+Suyp3EZFqcze5ayikiEishsndzDaY2S4z2xKz3czsJjPbbmZPmNl5rQ+z1hOrchcRidNM5f4VYHWd7WuA06JlLfDlmYfVBA2FFBGJ1TC5u/uPgRfrNLkK+EcPPQwsNLMlrQowlkbLiIjEakWf+1JgR8Xj/mjdJGa21sz6zKxvYGBgZs+qbhkRkVitSO5WY53Xauju6919lbuv6u3tneGzaiikiEicViT3fuCkisfLgJ0t2G99qtxFRGK1IrnfBbw3GjVzIbDf3Z9rwX7r01BIEZFY6UYNzOw24BJgsZn1A58AMgDufjNwN3AFsB0YAj5wpII9PDB1y4iIxGmY3N393Q22O/DhlkXUrPGhkOqWERGpNg/OUFVyFxGpNneTuw6oiojEmgfJXX3uIiLV5n5y12gZEZFJ5m5yD3RAVUQkztxN7po4TEQk1hxO7jqgKiISZ+4mdw2FFBGJNXeTu0bLiIjEmgfJXZW7iEi1uZvcNXGYiEisuZvcVbmLiMSaw8ldQyFFROLM4eSuyl1EJM7cTe4aCikiEmvuJncNhRQRiTWHk7sBpm4ZEZEa5m5yh7BrRkMhRUQmaSq5m9lqM3vGzLab2fU1tr/fzAbMbHO0/HHrQ60VWKDKXUSkhmYukJ0CvghcBvQDPzOzu9z9qaqm33b3Pz0CMdYJLqU+dxGRGpqp3C8Atrv7r919DPgWcNWRDatJQUqjZUREamgmuS8FdlQ87o/WVXuHmT1hZneY2Uktia4RdcuIiNTUTHK3Guu86vE/A8vd/WzgAeCrNXdkttbM+sysb2BgYGqR1tLZCzseVvUuIlKlmeTeD1RW4suAnZUN3H2Pu49GD28Bzq+1I3df7+6r3H1Vb2/vdOI93Ouug50/hy13znxfIiLzSDPJ/WfAaWa2wszagGuAuyobmNmSiodXAltbF2IdZ18DJ7wKfngj5EeOylOKiMwFDZO7uxeAPwXuJUzat7v7k2b2STO7Mmr2UTN70sweBz4KvP9IBXyYIIA3/U/YvwMeufmoPKWIyFxg7tXd50fHqlWrvK+vrzU7++Z/gd/+BD76c+hc3Jp9iogkkJltcvdVjdrN7TNUyy77JIwNwr99ZrYjERFJhPmR3HtPh/PfD30bYPe22m2KBdi5GR69BX5xh6YtEJF5reEZqnPGJevgidvhO2th+Wsn1hfz8PwT4aia/NDE+n/733Dp38Ir3xpNQiYiMn/Mn+Te1QuXfwru/RvYVTFYxwI47gw4732wbBUse3WY6H/0Kbj9D+HEc+H1fwOnXAxtHc09lzsc2gWZHGR79OUgIokzPw6oTkexAE98CzZ+Ohxtg8Gil8PxZ8JxZ4YHZlMZCDLh7dggvPBktGyBkX3hflLZ8GSqrl5Y/Ao47U1w6huhfeHs/W4iMm81e0D1pZvcywqjsO0+eH4L7IqS94u/YfJJuECmM0z+x58JvWdAKR9W8IMD4e1zm2FoDwRpOPmiMNEf+zLoWQLdJ0LXceF8OMUCFIbDsfmlAqSzkGqDdA5SNf6Zcof8MIwegJH9MHYI2rogtyBc0rnZ/++hVAoncSsVw9tiPrxfKoQLHv4etV5XCP/DSufC1yKdC1/D2f6dytzD32f8d4hRK97x9h5zv8bPV7aDcIK8VObw16QwFr4PRg+Gt/nhsNuxfDuyHwZ3h+/Hwd0wvBcKI1AcC9/zxXw4dUf5ughm4f6z3ZDtwbNdlDJduDtezEfLGOZOEBiBGUEUSslS5D0gXwoY9QAcUgGkDFLm4+0s+n0MwwxSQYCZYRY9v5eixcP3zNhg+LuNDYaLl8LXIdUWLkETHQ+1XudUemIfqczEhX/qsonXqvJvNZWfG7+t2FbMT+SCwvD458a9hJdKeKlA6dIbyJx+2cQem0zu86dbZrrS2bDf/ZVvnVg3NhR+aIpjYQIvFiDdBgtODsfWxykVob8PfnkPPPOvcP/HD99uQfhBLeXj92FB9Ka1qH30Bqj3M6m2MNm3dUKmI7ptn0im5Q+Ml8IPjRfDZGwWfViyEx+a6jd6OVGXYyiMRUlkaCKZlBNfK1kA6faw66t8m8qGr7+lwi/J8qyg5S+UUincnspWfFFkmfhgRUrF6O+aj758itH+gujyjQajB/HhvZSG9xKM7McSMvtoKcgAENR7P1QYthz76GGvdzNKhjEy5MmQp5MShpkTphwnTZF2302H/wedDNHFMI5RIEWeNAVPUawYg2EW/lzgJVJWIk2RNOHrlAfGCAjfgYZHGa38Lik/Z3lLgFOyVLjGAkoEDJNlkHYGPcugd1HAyFAg4wUyjJC2IkH0RREuhkXJ04DAyom0MhE7VioSeJ5UKU/a8xNfOmZhXOP5u/zYCaj4cjIwd0oOJcCj++VnGf/56GeCaB+Vr4BFn808aUZoY8TbGCbDWClNAaPoASWMEily/UNcfHpTf+7DqHI/kg4NwIF+OPAcHNwZ3noxSlbREqSib++RsKIqjIZtKhNyKhNW6Nme8LatM6xkRvZHyz4YGyQ/fIiRoQOMDR/Cx4ZJpQJSqRTpVEAmlcKCcCG6NaKKtBhVclFlNsGjqrGNUpAmT5pRT1FKtVNIt1NM5SgEOVLpNjKZDG1tGTKZsBIaLAQM5p2DY8Zg3rEgIB0EpFNBFE9AWzogm06RzRhpnNHRYcaGhxkdHaIwOoQVRgmKI6SiJSiNgZcwL2JeCpcgIAhSWJDGUinMi5Ty0etYGMFKY1ECMYLoA1YkRYEUY55izAMKJYsqpQKUSrgX2VtsZ1e+nX3eyT66GPG28bqz/DFtSxk97ZlwyaVJGeRLTqHo5IslCqUS+aJTKDn5YrSUIF8M1xcrXuqJqpbxhEh0m6IUJjUrkqGA4RzydgbJMUiOQ97OMFlGyFJK5/B0B6W2TuhYTEdnFwvaM3TnMqSqv7d9/K+Me5iU2lIB2XT4t2mL/lbpwEhFS8mdsUKJ0UKJ0UKRfNHpbEvT056mO5ehO5cmZTa+fbRQIl8shW/lKAk6UCiWGIu2jUb3y6/bWDG8n04ZbdF7JZMKSKds/DUqv1D56Gfy5f2VnGL5dS+WDnuNy9ozAR1taTraUnS0pQjMDt9PcSKW8HG4z0LRKZbCv6cZdGXTdLal6cyG+3LCv32hFD53oRS2Ly+FUvhfTGAWfQEY2XRANhN9DtITr306CMikjUwQ8PozjuPU47om3iuq3Kdv7+AYTz9/kF0HR9h1YJRdB0c4OFIgE73xs5mAtlT4xyyVnKI7xRKM5IvsH86PLwdH8ozkS4wW2hgrnMxoYRm5TIoF7RkWtGdY2BHe9uQy9LSnw/vd4Qex8sNSKDr9e4fo3zvMjheGeG7/CIdGCwyPFRnKFxgaK7L74CgHRgoz/t27sml6cukoYWUYKRR5fv8Iuw+NUpqdOuCIaksH9OQydLSlaM+maG9L0Z5JccKCHCcuzHHiwnbOWtjOos42cpnwA5jLhO26s+mwS2Ga8sUSw/kiI/kio/lSeFsoUYqSYLHklHwiOeSLJYrRH6ErO/H+6MqmaW8LY5tJPDK/KLlX+eULB3nnzT9l//DEv73ZdMCC9sx4dTBaCL+Vy1KBkTIjmwkOS9q9XV20t6XCaigTVkKjhRL7hvPsGxrjxcExfj0wyMGRPAdGCuMf3Hqy6YClC9vpyqVpz6To7crS0ZZm0altnLiwnRMXtrN0YTsLOzIcGM6PP9e+oXyUHBhPGKWq/9pKJefQaJEDI+EX0/7hPAs72jjjhG6O78lxfE+OxV1tZFIBqcBIBwGBwWihxMHRAoOjBQ5FXzCLutpY1JVlcVcbCzvaKJWcsYrXb3isyNBYgUOj4ZfTaL4YfallokozTSZVK1HZYT0s5f2NREkyMKOjLUUuE1Zl2UxqvEosP397W4qF7W0s7MiQy6Sm9gZpoXJF2pPLzFoMMn8puVf43b5h3nvro2TTAV/5wKtZdkw7vd05enKTK7Ri9C9Wqyold2dorBhV/AUOjOQ5EN03g5OO7eCkYzpY3NWm6kxEGlJyj+wdHOO9tz7C4FiB2z90Ea9c0lO3fSpobYI1MzqzYf+diMhMKZMAQ2MF/uirP2PH3mG+9kcXNEzsIiJJN6+S+3/sGeJnz77IScd2sHxxB71d2bpdGENjBZ7dPcTf3fs0j+/Yx5f+4Dxe87JFRzFiEZEjY14k99FCkfX/9mv+/sHtjBUmLrnXlU1zyqIOOrPhwbl0EB7AOjCS59ndg+w6ODre9lNvO4vVZy2ptXsRkTlnzif3n/xqN3/7vS38emCQN5+9hP92ycvZfWiM3wwc4je7B/nti0MMjxUZHitSKBWicbkpXveKXlYs7mT5ok5OP6H7sHGkIiJz3ZxN7oViiY9/fwu3PbqDk4/t4CsfeDWXnH7c+Pb//IoWXKNVRGSOmpPJ3d1Z951f8E+b+vnQ617Gn132ilkdrywikjRzLrm7O//r7q3806Z+rn3DafzZZa+Y7ZBERBKnqSsxmdlqM3vGzLab2fU1tmfN7NvR9kfMbHmrAy370sZfcctDv+F9F53Cx9542pF6GhGROa1hcjezFPBFYA3we8C7zez3qpp9ENjr7qcCnwOOyMVMv/7wb/m7e5/hbStP5BNvPVNnaoqIxGimW+YCYLu7/xrAzL5hcOr3AAAEy0lEQVQFXAU8VdHmKuB/RPfvAL5gZuZNTjn57O5B3nzTQw3bDY4VecMZx/F37zyHoMVniIqIzCfNJPelwI6Kx/3Aa+LauHvBzPYDi4DdlY3MbC2wNno4amZbphrwBmDDB6b6Uy2xmKrfJ+EU75GleI+8uRbz0Yr3lGYaNZPca5XI1RV5M21w9/XAegAz62tmTuKkULxHluI9suZavDD3Yk5avM0cUO0HTqp4vAzYGdfGzNLAAuDFVgQoIiJT10xy/xlwmpmtMLM24Brgrqo2dwHvi+5fDfyo2f52ERFpvYbdMlEf+p8C9wIpYIO7P2lmnwT63P0u4Fbga2a2nbBiv6aJ514/g7hng+I9shTvkTXX4oW5F3Oi4p21a6iKiMiR09RJTCIiMrcouYuIzEOzktwbTWcw28xsg5ntqhyHb2bHmtn9ZrYtuj1mNmOsZGYnmdmDZrbVzJ40s2uj9YmM2cxyZvaomT0exXtjtH5FNH3Ftmg6i7bZjrWSmaXM7Odm9oPocWLjNbNnzewXZrbZzPqidYl8PwCY2UIzu8PMno7exxclNV4zOz16XcvLATP7WNLiPerJvcnpDGbbV4DVVeuuB37o7qcBP4weJ0UB+HN3fyVwIfDh6DVNasyjwKXufg6wElhtZhcSTlvxuSjevYTTWiTJtcDWisdJj/f17r6yYux1Ut8PAP8H+Fd3PwM4h/B1TmS87v5M9LquBM4HhoDvkrR43f2oLsBFwL0Vj9cB6452HE3EuRzYUvH4GWBJdH8J8Mxsx1gn9u8Dl82FmIEO4DHCs553A+la75PZXgjP7/ghcCnwA8IT95Ic77PA4qp1iXw/AD3Ab4gGeCQ93qoY3wT8vyTGOxvdMrWmM1g6C3FM1fHu/hxAdHtcg/azIpqR81zgERIcc9TFsRnYBdwP/ArY5+6FqEnS3hefB/4SKF/HcRHJjteB+8xsUzTtByT3/fAyYAD4v1G31z+YWSfJjbfSNcBt0f1ExTsbyb2pqQpk6sysC7gT+Ji7H5jteOpx96KH/9YuI5yc7pW1mh3dqGozs7cAu9x9U+XqGk0TEW/kYnc/j7D788Nm9rrZDqiONHAe8GV3PxcYZLa7NJoQHWO5Evin2Y6lltlI7s1MZ5BEL5jZEoDodtcsx3MYM8sQJvZvuPt3otWJjhnA3fcBGwmPFSyMpq+AZL0vLgauNLNngW8Rds18nuTGi7vvjG53EfYHX0By3w/9QL+7PxI9voMw2Sc13rI1wGPu/kL0OFHxzkZyb2Y6gySqnGLhfYT92olg4cT2twJb3f2zFZsSGbOZ9ZrZwuh+O/BGwgNoDxJOXwEJitfd17n7MndfTvh+/ZG7/wEJjdfMOs2su3yfsF94Cwl9P7j788AOMzs9WvUGwinFExlvhXcz0SUDSYt3lg5CXAH8krCf9W9m+6BIjfhuA54D8oRVxQcJ+1h/CGyLbo+d7Tgr4n0tYZfAE8DmaLkiqTEDZwM/j+LdAtwQrX8Z8CiwnfBf3exsx1oj9kuAHyQ53iiux6PlyfJnLKnvhyi2lUBf9J74HnBMwuPtAPYACyrWJSpeTT8gIjIP6QxVEZF5SMldRGQeUnIXEZmHlNxFROYhJXcRkXlIyV1EZB5SchcRmYf+P341ms1IYxYfAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x27c4e199400>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "poly2_reg = PolynomialRegression(degree=2)\n",
    "plot_learning_curve(poly2_reg, X_train, X_test, y_train, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3XuUXGWZ7/HvU9XV986tuwMhCSRCBBUhCRFBXB4uIgkwoIIMelCc0YkzSxHPERXmLJnBtWYN/HGQgyicgIziBS8gioojoOGIowIdDBBIMEGDaRLoToek0/euquf8sXd1Kp3qVHVSndq78vusVasue3f100nVr9569ltvmbsjIiLVJVHpAkREpPwU7iIiVUjhLiJShRTuIiJVSOEuIlKFFO4iIlWo5HA3s6SZ/dHMflZgW52Zfd/MNpnZE2a2oJxFiojI5Exm5H41sH6CbR8DXnf344AvAzcdbGEiInLgSgp3M5sHXADcNcEuFwPfDC/fB5xjZnbw5YmIyIGoKXG/W4DPAy0TbJ8LbAFw97SZ7QJage35O5nZSmAlQFNT0yknnHBCsCE9DF0vwMwF0DBzkn+CxN7uV2H3Njhqyd63d70AqSaYeUxl6gJID0HXepi5EBpmVK4OkdCaNWu2u3t7sf2KhruZXQh0ufsaMztzot0K3LbPugbuvgpYBbBs2TLv6OgINvS8BF9ZCu//dzjpsmIlSbVZ/e/w/26Ef+3Y+/Zb3gpHvwPe/38rUxdA1wb42tvh0pvgxEsqV4dIyMxeLmW/UtoyZwAXmdlm4HvA2Wb27XH7dALzw19cA0wHdpRcrQjA+HWOsllIJCtTS466ixJTRcPd3a9z93nuvgC4HPi1u18xbrcHgSvDy5eG+2hFMinNRAHqmcqHe44ezhIzBzzP3cy+ZGYXhVe/DrSa2SbgfwLXlqM4OczsM3JPg1U63DVyl3gq9YAqAO7+GPBYePn6vNuHgA+UszA5nEwQoNkIjdwlMkZHR+ns7GRoaKjSpUyp+vp65s2bRyqVOqCfn1S4i0ytcSN3z0Ciwg9R9dwjp7Ozk5aWFhYsWEC1zrh2d3p6eujs7GThwoUHdB9afkAqb6InaDYTgbZMSD33yBgaGqK1tbVqgx3AzGhtbT2odycKd4mOfXruGUhU+iFavQESZ9Uc7DkH+zdW+pkjwoQBGoW2zBiN3CVeFO4SIRGcLZMbPaktI6GdO3fyta99bdI/d/7557Nz584pqKgwhbtUXsHPNzt4BD7EJDLOROGeyWT2+3MPPfQQM2YcuiUsovKeV2Tv0bFng3O1ZSRirr32Wl566SUWL15MKpWiubmZOXPmsHbtWl544QXe+973smXLFoaGhrj66qtZuXIlAAsWLKCjo4O+vj5WrFjBO9/5Tn73u98xd+5cfvKTn9DQ0FDWOqPyzJHDWoGhezYdbqrwm8vD4MBdnN3w0+d5YWtvWe/zzUdN41/+5i0Tbr/xxhtZt24da9eu5bHHHuOCCy5g3bp1Y1MW7777bmbNmsXg4CBve9vbuOSSS2htbd3rPjZu3Mi9997LnXfeyWWXXcb999/PFVeM/+D/wVG4S4TkjY6z4VvcqLRl1HOXCZx66ql7zUW/9dZbeeCBBwDYsmULGzdu3CfcFy5cyOLFiwE45ZRT2Lx5c9nrUrhL5RUaHXsu3Cv9ENXIPcr2N8I+VJqamsYuP/bYYzz66KP8/ve/p7GxkTPPPLPgXPW6urqxy8lkksHBwbLXpQOqEh35o+OxtkxERu7quUuopaWF3bt3F9y2a9cuZs6cSWNjIxs2bOAPf/jDIa5uj0oPi0Qo3HPPHVCNyFRIkVBraytnnHEGJ554Ig0NDRxxxBFj25YvX84dd9zBSSedxPHHH89pp51WsToV7hJNubZMpQ+o5qjnLnm++93vFry9rq6OX/ziFwW35frqbW1trFu3buz2a665puz1gdoyEikF2jLquYscEIW7VF6h1kfUZsuo5y4xo3CX6NjrQ0y5tkxEeu5qy0jMKNwlAvY3cq90W0YknhTuEiFR/BBT7oVHI3eJl6Lhbmb1ZvakmT1jZs+b2Q0F9vmomXWb2drw9PGpKVeq0v4+xFTp2TKaCikxVcozZxg4291PBhYDy82s0OTN77v74vB0V1mrlMODFxq5R6Qto567hA50yV+AW265hYGBgTJXVFjRcPdAX3g1FZ70SJcy2s/CYZFpy4gE4hLuJQ2LzCwJrAGOA77q7k8U2O0SM3sX8Cfgf7j7lvKVKYeHCM6WGaPxjATyl/w999xzmT17Nj/4wQ8YHh7mfe97HzfccAP9/f1cdtlldHZ2kslk+OIXv8hrr73G1q1bOeuss2hra2P16tVTWmdJ4e7uGWCxmc0AHjCzE919Xd4uPwXudfdhM/tH4JvA2ePvx8xWAisBjj766IMuXqpEwXnuEVnPXT33aPvFtfDqc+W9zyPfCitunHBz/pK/Dz/8MPfddx9PPvkk7s5FF13Eb37zG7q7uznqqKP4+c9/DgRrzkyfPp2bb76Z1atX09bWVt6aC5jU0Sp33wk8Biwfd3uPuw+HV+8ETpng51e5+zJ3X9be3n4A5UpVK7RwWMW/IDuknrsU8PDDD/Pwww+zZMkSli5dyoYNG9i4cSNvfetbefTRR/nCF77A448/zvTp0w95bUWHRWbWDoy6+04zawDeDdw0bp857r4tvHoRsL7slUoV299smUq3ZTRyj7T9jLAPBXfnuuuu4xOf+MQ+29asWcNDDz3Eddddx3ve8x6uv/76Q1pbKcOiOcBqM3sWeAp4xN1/ZmZfMrOLwn0+HU6TfAb4NPDRqSlXqluEZ8uo5y6h/CV/zzvvPO6++276+oI5J6+88gpdXV1s3bqVxsZGrrjiCq655hqefvrpfX52qhV95rj7s8CSArdfn3f5OuC68pYmh42CPfeIzJbR8gMyTv6SvytWrOBDH/oQp59+OgDNzc18+9vfZtOmTXzuc58jkUiQSqW4/fbbAVi5ciUrVqxgzpw50TigKnJIFPqC7Iq3ZUT2NX7J36uvvnqv68ceeyznnXfePj931VVXcdVVV01pbTkROVolh7corwqp5QcknhTuEiGFZstEpC0jEjMKd4mmyMyWCannHil+GPx/HOzfqHCXyov0l3Vo5B419fX19PT0VHXAuzs9PT3U19cf8H3ogKpER5QXDpPImDdvHp2dnXR3d1e6lClVX1/PvHnzDvjn9cyRCNCSv1K6VCrFwoULK11G5KktI9EUmbZMqIpbAFKdFO5Sefv7so6Kt2U0cpd4UrhLdBRaOCwqs2U0z11iRuEuERDh2TJafkBiSuEuEVJg+YGKt2VE4knhLpW3v4XDKj1bZoxG7hIvUXnmiEwwzz0ibRmRmFG4SzRFZrZMSD13iRmFu0RIFGfLaOQu8aRwl8rb7xdkVzrcczRyl3hRuEt07PVlHVp+QORgKNwlAiaYLWPJ6ISreu4SM0XD3czqzexJM3sm/BLsGwrsU2dm3zezTWb2hJktmIpipdqNmy0TiZZMRF5cRCaplJH7MHC2u58MLAaWm9lp4/b5GPC6ux8HfBm4qbxlSlWbaG2Zih9MzaeRu8RL0XD3QF94NRWexj/SLwa+GV6+DzjHLCrvpyWWsploTIPU8gMSUyX13M0saWZrgS7gEXd/Ytwuc4EtAO6eBnYBrQXuZ6WZdZhZR7UvtC8HYPyHmBI6JCRyoEp69rh7xt0XA/OAU83sxHG7FBql7zPUcfdV7r7M3Ze1t7dPvlqpUlFuy+Rq08hd4mVSQyN33wk8Biwft6kTmA9gZjXAdGBHGeqTw8q4DzFFqS0jEjOlzJZpN7MZ4eUG4N3AhnG7PQhcGV6+FPi1V/O310p5TfQF2ZGYLRPSw1lippSh0Rzgm2aWJHgx+IG7/8zMvgR0uPuDwNeBb5nZJoIR++VTVrFUn2RdcD4ysOc2z0asLSMSL0XD3d2fBZYUuP36vMtDwAfKW5ocNma9ITjf8RK0HRdcjtrIXT13iRlNR5DKa1sUnG//057bsulohLt67hJTCnepvMZZ0DALtm/cc1tkZsuE1HOXmIlGuNc2wZsvhunzKl2JVErbG6Fn057rUfkQk6ZCSkxF4dkDLUfCZfdUugqppLbj4E8P77keuZ67SLxEY+Qu0roI+rtgcGdw3TOVX+4XtPyAxFYEnj0i7DmommvNRKYtIxJPCneJhrY3Bue5g6pRmS2jnrvElMJdomHmgmCk3hOGe9Rmy4jEjMJdoiGZCgJ+bOSejUZbZqznXtkyRCZL4S7RkT8dMpuOyJK/+hCTxFMUnj0igdbjoOel4GBq5NoyGrpLvCjcJTraFkFmGHb+NTrz3LX8gMSUwl2iozVvOmRU1nPP0Tx3iRmFu0RH/nTIyC35q3CXeFG4S3Q0tULDzGB1SH2HqshB0bNHoqV1UbTaMlp+QGJK4S7R0rYobMtEbbaMSLwo3CVa2hZB36swtCtis2U0cpd4KeULsueb2WozW29mz5vZ1QX2OdPMdpnZ2vB0faH7EikqN2NmoCcabRmRmCrl2ZMGPuvuT5tZC7DGzB5x9xfG7fe4u19Y/hLlsJJbHRKiseRvjnruEjNFnz3uvs3dnw4v7wbWA3OnujA5TM1cuKfXHoW2DKAlCCSOJjU0MrMFwBLgiQKbTzezZ8zsF2b2lgl+fqWZdZhZR3d396SLlcNATW2wgBhErC2jkbvES8nhbmbNwP3AZ9y9d9zmp4Fj3P1k4CvAjwvdh7uvcvdl7r6svb39QGuWapdrzURltoyWIJAYKinczSxFEOzfcfcfjd/u7r3u3hdefghImVlbWSuVw0frccF5ZNoyqOcusVPKbBkDvg6sd/ebJ9jnyHA/zOzU8H57ylmoHEZyI/fIhLuhtozETSlNzTOADwPPmdna8LZ/Bo4GcPc7gEuBfzKzNDAIXO6uoY4coNwaM1Fpy4jEUNFwd/ffUmS6gLvfBtxWrqLkMNcasZG7mdoyEjsRmkgsEmpqg8VXwML/VulKRGIrSnPNRAJm8N6vVrqKPOq5S/xo5C4iUoUU7iLFqOcuMaRwFylKH2KS+FG4i5REI3eJF4W7SDFafkBiSOEuUgr13CVmFO4iRWkqpMSPwl1EpAop3EWK0VRIiSGFu4hIFVK4ixSl2TISPwp3EZEqpHAXKUY9d4khhbtIUWrLSPwo3EVKopG7xIvCXaQYLT8gMVTKF2TPN7PVZrbezJ43s6sL7GNmdquZbTKzZ81s6dSUK1Ih6rlLzJTyTUxp4LPu/rSZtQBrzOwRd38hb58VwKLw9Hbg9vBcpApo+QGJn6Ijd3ff5u5Ph5d3A+uBueN2uxi4xwN/AGaY2ZyyVysiIiWZVM/dzBYAS4Anxm2aC2zJu97Jvi8AmNlKM+sws47u7u7JVSpSKYbaMhI7JYe7mTUD9wOfcffe8ZsL/Mg+zwZ3X+Xuy9x9WXt7++QqFRGRkpUU7maWIgj277j7jwrs0gnMz7s+D9h68OWJRIF67hI/pcyWMeDrwHp3v3mC3R4EPhLOmjkN2OXu28pYp4iITEIps2XOAD4MPGdma8Pb/hk4GsDd7wAeAs4HNgEDwN+Vv1SRCtHyAxJDRcPd3X9Lkc9fu7sDnyxXUSLRog8xSfzoE6oiJdHIXeJF4S5SjNoyEkMKdxGRKqRwFylKUyElfhTuIiJVSOEuUox67hJDCncRkSqkcBcpSj13iR+Fu4hIFVK4ixSjnrvEkMJdRKQKKdxFilLPXeJH4S5SjNoyEkMKdxGRKqRwFylKbRmJH4W7iEgVUriLFGOmgbvEjsJdRKQKlfIF2XebWZeZrZtg+5lmtsvM1oan68tfpkglqecu8VPKF2R/A7gNuGc/+zzu7heWpSIRETloRUfu7v4bYMchqEUkmjTPXWKoXD33083sGTP7hZm9ZaKdzGylmXWYWUd3d3eZfrWIiIxXjnB/GjjG3U8GvgL8eKId3X2Vuy9z92Xt7e1l+NUih4J67hI/Bx3u7t7r7n3h5YeAlJm1HXRlIlFhqC0jsXPQ4W5mR5qZhZdPDe+z52DvV0REDlzR2TJmdi9wJtBmZp3AvwApAHe/A7gU+CczSwODwOXuGuZINVFbRuKnaLi7+weLbL+NYKqkiIhEhD6hKlKMpkJKDCncRUSqkMJdpCj13CV+FO4iIlVI4S5SjHruEkMKdxGRKqRwFylKPXeJH4W7SDFqy0gMKdxFRKqQwl2kKLVlJH4U7iIiVUjhLlKMeu4SQwp3EZEqpHAXKUo9d4kfhbuISBVSuIsUo567xJDCXUSkCincRYpSz13ip2i4m9ndZtZlZusm2G5mdquZbTKzZ81safnLFKkgtWUkhkoZuX8DWL6f7SuAReFpJXD7wZclIiIHo2i4u/tvgB372eVi4B4P/AGYYWZzylWgSOVZpQsQmbRy9NznAlvyrneGt+3DzFaaWYeZdXR3d5fhV4uISCHlCPdCw5qCDUp3X+Xuy9x9WXt7exl+tcghoJ67xFA5wr0TmJ93fR6wtQz3KyIiB6gc4f4g8JFw1sxpwC5331aG+xWJCE2FlPipKbaDmd0LnAm0mVkn8C9ACsDd7wAeAs4HNgEDwN9NVbEiIlKaouHu7h8sst2BT5atIpGoMdRzl9jRJ1RFRKqQwl2kKPXcJX4U7iLFaCqkxJDCXUSkCincRYpSW0biR+EuIlKFFO4ixajnLjGkcBcRqUIKd5Gi1HOX+FG4i4hUIYW7SDHquUsMKdxFSqJwl3hRuIsUpa/Zk/hRuIuUQm0ZiRmFu0gxppG7xI/CXaQoTYWU+FG4i4hUIYW7SDGaCikxVFK4m9lyM3vRzDaZ2bUFtn/UzLrNbG14+nj5SxURkVKV8gXZSeCrwLlAJ/CUmT3o7i+M2/X77v6pKahRpMLUc5f4KWXkfiqwyd3/7O4jwPeAi6e2LBERORilhPtcYEve9c7wtvEuMbNnzew+M5tflupEokA9d4mhUsK90CTf8Y/0nwIL3P0k4FHgmwXvyGylmXWYWUd3d/fkKhURkZIV7bkTjNTzR+LzgK35O7h7T97VO4GbCt2Ru68CVgEsW7ZMQyGJCX2IiZ1/hae/Bd3rIVkHNfVQUwepBmiYAQ2zoHFWcJ5MQWYUsqPheSa4DzPAgu3HvANqmyr6J1W7UsL9KWCRmS0EXgEuBz6Uv4OZzXH3beHVi4D1Za1SpNLGt2WyWdj+Irz8O/jr72HLE8E+Te17To2zoK4lCLHa5uByyxyYMT84TyQr87eUKpuBjY9Ax92w8eHgtrY3BqGdHoH0EIwOwmj/5O+7dRF84Btw5IllLVn2KBru7p42s08BvwSSwN3u/ryZfQnocPcHgU+b2UVAGtgBfHQKaxY5tPKXH9i+EZ66C579AQzuCG5rPgKOPg1SjdDfDX2vwqvPBdvTQ4XvM1ED046CmQuh/QSYfUJw3nY8NMyERF7HNJuBbWth06+C00APLP0wLL0yGDUXM7gT+l4LRtt1LcELTU1tENB9rwWn3dugdxvs2gK7OoPTjpeC39V8BLzrGlj6EZhx9L73nx6GgR3B3zuwA7LpYHSerA3+ztyLmDvgwX3//LNw1zmw/EY45aNa4mEKmFfoQNGyZcu8o6OjIr9bZFL+44Ig9FqPhZd+DYkUvOlv4Lhz4OjTYdYbJg6nTBpG+mCkH4Z7ofcV2LkluL+dW6BnE3S/uPfo15LQ2BqcGmZC94Y9LyRzFgcvIn/9XRDSSz4Mb/9EEKQ7Xgrur+cleH0z7Hw5aKcM7dq3rmQtZEYK3z59XniaD29cDsevCMK6nPq64Uf/AH9eDSdeAhf8b6hpAM8EL2aeDdo+ybq9X+gEM1vj7suK7qdwFyninovhz49By1Gw7O/hlCuheXb57j+bhd5O6NoQhPPAdujfHoyaB3YEo+Xj3g3HngVNbcHPbF0Lv/8qPP+jYKScr6YeZi6AGccEPzvj6KANlBmG4d0w3AcjuyHVBC1HBNuaw/Om9kMXptks/PZmWP1vQZhPJJEK/qZUffDClmqE2vC8Jq//X1MP9TOgOdcamw3tx8PMYw7N33OIKNxFyuXV54JR9qJzyz+CPVi7XoHnfgh1zdB6HMw6FqbNjddot7MjeEdkiT1tHEsE7yzSw0FrKz0c9vcHgndBucvp4XC/oT3tob2OARgcfz6846qgdVYF7R+Fu4gcnkb6g3c+/d3wp1/CU3fC4Osw723w9n+EWQvD0X444s8/NpAIjxUkS5lrUhkKdxERCMJ+7Xfh97cFxyJKkWqE+unBqW5aEP540D5yD14AmsPWT+68fjrUT4O68OdS9eGLRu6gsoXvPAaCdxcjA8F9WjLcJxFMHe3rgv6u4LhEf1dwXOWoxWOllRru0X15EhEph9omOPUfguMlW56Aod49bZz0UDC1M5sJ5+Sng9uHe4MD0bmTZ/fM0zcL9tn2bPDuYLh36mpvmAkL37VXuJdK4S4ih4dEMvjwVLmNDgUhP7QrfFHoDc5HB4MXC8/uOU81Bi82uYPClgi2ZbPBTCFL7nkn0NQeTFk9QAp3EZGDkaoPPphGtJbUUriLiByEkXSW1wdGSGedbNZxh2zesUwzMGxsoo4ZmBkGDKezDI5kGBxNMzCSYSSdJRv+vLuTdVg8fwZHzWiYdF0KdxHZSybrjGayjGSCuedJM5IJI2FGTcJIJPaeTuju9A2n6R1K0zs4StadupoEqWRwqg0v1yYTpJLBfQ2NZtk1OErv0Ci7BkcZSWepSRipmmC/hBn9I8H99Q6N0ju4J/xGMhlGM0464yQTkEwkxupyd9JZJ5MNtqez2XDfLOmsM5LJMjCcpm84Td9whr7hUbJZSCWNmrDemoTh4dqIuYxOJoK/Pfc3jWaybO8bZnvfCLsGR6f0/+PWDy7hIoW7SPXLZJ3dQ6PsHBhl52AQjoMjaQZHMwyNBiPB/ICtrUmQTFjeKDHDwEiG1/tHeK13iK7dw3T1DrFjYGRs5Lg/CSMIwjDw+0fSRX+mnJIJozYM4UxemGeyHtSWSIyFcTJp1CQSYXgbqUSCproamutqmDujlua6ZpKJRPgisOeFIDeyzsl48GIxmskyOJohacYbj2jhHcfW0d5Sx6ymWmqTCcwgYRaOzoMXB/dgGV338CXDwQlG+HWpBA2pJA21NTTWJqlNBrXn7idhxpHT6w/o30nhLlICd2f3cJrtu4fp6R+he/cw23YNsW3nINt6h3h11xDprFOXTFCXyo1SEyQSe56kidzb8by36UkLQqcmEYwcDcIRa5reoVF2D6UZCIN7cCQ4DYxmyrK8/IzGFEe01DN7Wh3HtrfR2ly714g7lQziLZN1Mh6EUf5oeDSTJZN1WuprmFafoqW+hpb6FMmEBSP/dHbsHUBu/9HwtobaGqY3pJjWEJzXJhNjI+t0GLDN4f1Obwjuu6muhlQYfhP9H1kVfEipXBTuUlXcna27hvjjX1/nj3/dycauPgzG3rbn3lrXJG0sgJMJI53Njo3+RjPByHjX4J7T6/2jY22KfPWpBEdNb+CIafU01SUYSWfoH06zIwyxPf3TICRzI7bgFIRm7ndmsk7Wnaa6mrGgnFZfw5HT6mmoTQanVJKm2iTTG2uZ0ZBiRmMQfo21NTTUJqkPR4JmewfsaMbHtjXW1lBXk9invRJ3Cva9Kdwlcl7u6eeux//CltcHGMiNVkfSwci4Jmgz1NUEb2EhDE+CsHy5Z4Cu3cNAELyLZreQSBiZbDAizGSDt/G50Etng1FiTTLvrXzCaKlPMb2hhoVtTUxvSDGzsZa25jraWmppbaqjrbmOOdPrmdGYUqhIJCncJTK27Rrk1l9t4ocdW0gmgp5mY22StuZaGusaqUkYI+ksw+lseJ7BMDDClkeCdxzbytJjZrJk/kxOmNNCKhmjNVZEykjhLhWVyTovbO3lgT++wrefeBl350NvP5pPnXUcs6cd2IEkEVG4ywEaGs3Q0z/Cjr4RMu4kzUgkgpkMho31r4OecnZs6tpoNjiotqm7jyf/soOOza/TN5wmYfD+pfO4+pxFzJ/VWOk/TyT2FO4CBP3qJ/+ygxdf282fu/v58/Z+/rK9j/7hzF4HId1hR/8IfcPp4ndaxKLZzVy8+ChOXTiL097QyhEaqYuUjcJd2N43zOfve5Zfb+gCoKk2ycL2JhbPn8n0hppwfm8wBc6AmU3BwcXWplpmNtWSShqZLGOzPdyDEXzuAGUiYaTCqX65ucZHzaintbmusn+4SBVTuB/mVr/Yxed++Ay9Q2m+eOGbufCkOcxuqdMMEJGYKynczWw58H8IviD7Lne/cdz2OuAe4BSgB/hbd99c3lKlnAZHMtz0nxv4xu82c8KRLXzn46dx/JEtlS5LRMqkaLibWRL4KnAu0Ak8ZWYPuvsLebt9DHjd3Y8zs8uBm4C/nYqC5cBks876V3v5r03beXzjdp7avIOh0Sx/f8ZCPr/8eOpTyUqXKCJlVMrI/VRgk7v/GcDMvgdcDOSH+8XAv4aX7wNuMzPzEr/mafP2fi649fGSi5bJS2ed4XTwCctFs5u5/G1Hc8FJc3jbglkVrkxEpkIp4T4X2JJ3vRN4+0T7uHvazHYBrcD2/J3MbCWwMrw6bGbrDqToCmlj3N8TcRPW+zLwKHDDIS2nqKr5942ouNUL8av5UNV7TCk7lRLuhY6sjR+Rl7IP7r4KWAVgZh2lfA9gVKjeqaV6p1bc6oX41Ry1ekv5bHYne3/FyDxg60T7mFkNMB3YUY4CRURk8koJ96eARWa20MxqgcuBB8ft8yBwZXj5UuDXpfbbRUSk/Iq2ZcIe+qeAXxJMhbzb3Z83sy8BHe7+IPB14FtmtolgxH55Cb971UHUXQmqd2qp3qkVt3ohfjVHql7TAFtEpPpoPVQRkSqkcBcRqUIVCXczW25mL5rZJjO7thI17I+Z3W1mXfnz8M1slpk9YmYbw/OZlawxn5nNN7PVZrbezJ43s6vD2yNZs5nVm9mTZvZMWO8N4e0LzeyJsN7vhwfwI8PMkmb2RzP7WXg9svWa2WYze87M1ppZR3hbJB8PAGY2w8zuM7MN4eP49KjWa2bHh/+uuVOvmX0mavUe8nDPW85gBfBm4INm9uYDawNiAAADFklEQVRDXUcR3wCWj7vtWuBX7r4I+FV4PSrSwGfd/U3AacAnw3/TqNY8DJzt7icDi4HlZnYawbIVXw7rfZ1gWYsouRpYn3c96vWe5e6L8+ZeR/XxAMHaVf/p7icAJxP8O0eyXnd/Mfx3XUywntYA8ABRq9fdD+kJOB34Zd7164DrDnUdJdS5AFiXd/1FYE54eQ7wYqVr3E/tPyFYCyjyNQONwNMEn3reDtQUepxU+kTw+Y5fAWcDPyP44F6U690MtI27LZKPB2Aa8BfCCR5Rr3dcje8B/iuK9VaiLVNoOYO5Fahjso5w920A4fnsCtdTkJktAJYATxDhmsMWx1qgC3gEeAnY6e65bwGJ2uPiFuDzQDa83kq063XgYTNbEy77AdF9PLwB6Ab+I2x73WVmTUS33nyXA/eGlyNVbyXCvaSlCmTyzKwZuB/4jLv3Vrqe/XH3jAdva+cRLE73pkK7HdqqCjOzC4Eud1+Tf3OBXSNRb+gMd19K0P78pJm9q9IF7UcNsBS43d2XAP1UuqVRgvAYy0XADytdSyGVCPdSljOIotfMbA5AeN5V4Xr2YmYpgmD/jrv/KLw50jUDuPtO4DGCYwUzwuUrIFqPizOAi8xsM/A9gtbMLUS3Xtx9a3jeRdAPPpXoPh46gU53fyK8fh9B2Ee13pwVwNPu/lp4PVL1ViLcS1nOIIryl1i4kqCvHQlmZgSfEl7v7jfnbYpkzWbWbmYzwssNwLsJDqCtJli+AiJUr7tf5+7z3H0BweP11+7+34lovWbWZGYtucsEfeF1RPTx4O6vAlvM7PjwpnMIlhSPZL15PsielgxErd4KHYQ4H/gTQZ/1f1X6oEiB+u4FtgGjBKOKjxH0WH8FbAzPZ1W6zrx630nQEngWWBuezo9qzcBJwB/DetcB14e3vwF4EthE8Fa3rtK1Fqj9TOBnUa43rOuZ8PR87jkW1cdDWNtioCN8TPwYmBnxehsJvnVuet5tkapXyw+IiFQhfUJVRKQKKdxFRKqQwl1EpAop3EVEqpDCXUSkCincRUSqkMJdRKQK/X/kxOML9cjTWwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x27c4dc0c588>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "poly2_reg = PolynomialRegression(degree=20)\n",
    "plot_learning_curve(poly2_reg, X_train, X_test, y_train, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
